home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / datamaster_lib.lha / Datamaster / Developer / Include / Asm / libraries / datamaster.i < prev   
Text File  |  1997-05-01  |  6KB  |  210 lines

  1.     IFND LIBRARIES_DATAMASTER_I
  2. LIBRARIES_DATAMASTER_I SET 1
  3.  
  4. **
  5. **    $Filename: libraries/datamaster.i $
  6. **    $Release: 2.0 $
  7. **    $Revision: 2.0 $
  8. **
  9. **    datamaster.library definitions
  10. **
  11. **    (C) Copyright 1995-1997 Alexis Nasr, Dirk Stöcker
  12. **    All Rights Reserved
  13. **
  14.  
  15.     IFND    EXEC_LISTS_I
  16.     INCLUDE "exec/lists.i"
  17.     ENDC
  18.  
  19.     IFND    EXEC_LIBRARIES_I
  20.     INCLUDE    "exec/libraries.i"
  21.     ENDC
  22.  
  23.     IFND    UTILITY_TAGITEM_I
  24.     INCLUDE    "utility/tagitem.i"
  25.     ENDC
  26.  
  27. DATAMASTERNAME:    MACRO
  28.         DC.B    "datamaster.library",0
  29.         ENDM
  30.  
  31. *************************************************************************
  32. *                                    *
  33. * Headers of recognizers                        *
  34. *                                    *
  35. *************************************************************************
  36.  
  37. RECOHEADER:    MACRO
  38.     MOVEQ    #-1,D0
  39.     RTS
  40.     DC.B    "DATARECO"
  41.     DC.L    \1
  42.         ENDM
  43.  
  44. RECOHEADER2:    MACRO        ;for internals
  45.     EVEN
  46.     DC.B    "DATARECO"
  47.     DC.L    \1
  48.         ENDM
  49.  
  50. *************************************************************************
  51. *                                    *
  52. * Library base structure                        *
  53. *                                    *
  54. *************************************************************************
  55.  
  56.   STRUCTURE DatamasterBase,LIB_SIZE
  57.     LONG    dmb_Seglist
  58.     LONG    dmb_RecoAdr    ;(internal) adr of array of recognizer segments.
  59.     WORD    dmb_RecoNb    ;number of  recognizers
  60.     WORD    dmb_Flags    ;see below
  61.     LONG    dmb_LockNest    ;count of LockCbases.Can only modify prefs if it is ZERO...means no user NOW.
  62.  
  63.     LONG    dmb_DosBase
  64.     LONG    dmb_UtilBase
  65.     LONG    dmb_ReqBase    ;may be ZERO...
  66.     LONG    dmb_ResBase2
  67.     LONG    dmb_ResBase3
  68.     LABEL    dmb_SIZEOF
  69.  
  70. *************************************************************************
  71. *                                    *
  72. * Flags for dmb_Flags                            *
  73. *                                    *
  74. *************************************************************************
  75.  
  76.     BITDEF    DMFLAG,PrefsNow,0    ;prefs are changing NOW!! please wait!!!
  77.  
  78. *************************************************************************
  79. *                                    *
  80. * Tags for external Recognizer                        *
  81. *                                    *
  82. * Tags marked with '*' ***MUST*** be present!                *
  83. *                                    *
  84. *************************************************************************
  85.  
  86. DMR_TagBase:    EQU    (TAG_USER+"DM")    ;DataMaster Recognizer
  87.  
  88.     ENUM    DMR_TagBase            ; TagBase
  89.  
  90.     EITEM    DMR_Check        ;pointer to checkroutine
  91.     EITEM    DMR_Flags        ;* see defs
  92.     EITEM    DMR_Name        ;* THAT one is used,*NOT* filename,so don't change it in new versions of recognizer :)
  93.     EITEM    DMR_Descr        ;$VER-like description (60 chars string max)
  94.     EITEM    DMR_Version        ;recoversion: Ver<<16+Rev (high W=ver/low W=rev)
  95.     EITEM    DMR_DMVersion        ;needed version of library
  96.     EITEM    DMR_Pattern
  97.     EITEM    DMR_Pri            ;See PRI_xxx predefined values
  98.     EITEM    DMR_RecoNumber        ;Obsolete
  99.     EITEM    DMR_InitRoutine        ;optional init routine (libs needed etc)
  100.     EITEM    DMR_ExitRoutine        ;optional exit routine (libs needed etc)
  101.  
  102. * additions in version 2.0
  103.  
  104.     EITEM    DMR_HookName
  105.     EITEM    DMR_Class        ;set classbit in the ti_data
  106.  
  107.     EITEM    DMR_SubTypesTable
  108.     EITEM    DMR_CheckRoutineHook    
  109.  
  110.     
  111. *************************************************************************
  112. *                                    *
  113. * Flag bits                                *
  114. *                                    *
  115. * These are used for DMR_Flags tag and for Testfile Mode        *
  116. *                                    *
  117. *************************************************************************
  118.  
  119.     BITDEF    RECO,Internal,0        ;won't be Unloadseg'd
  120.     BITDEF    RECO,CheckPatt,1    ;means the PatternTag valid
  121.     BITDEF    RECO,CheckData,2    ;means the CheckTag valid
  122.     BITDEF    RECO,XPKLoad,3        ;used for TestFile
  123.     BITDEF    RECO,Disabled,4        ;NOT USED YET
  124.     BITDEF    RECO,GetName,5        ;obsolete name
  125.     BITDEF    RECO,SubType,5        ;means DMR_Check() returns d0=string (& NOT d0=TRUE/FALSE)
  126.     BITDEF    RECO,NoCopy,6        ;PRIVATE
  127.     BITDEF    RECO,DupString,7    ;used with GetName flag: means the
  128.                     ;string is ALLOCATED by the recognizer. It'll be the library job
  129.                     ;to Freemem() this string    
  130.     BITDEF    RECO,PattPriority,8    ;for dmTestFile() & dmTestData()
  131.                     ;=> pattern check will be done before data check.
  132.  
  133.     BITDEF    RECO,Private1,31    ;(hands off!!)
  134.                     
  135. *************************************************************************
  136. *                                    *
  137. * priority definitions                            *
  138. *                                    *
  139. *                                    *
  140. * Note: Priority "0" must NOT be used.                    *
  141. *************************************************************************
  142.  
  143. PRI_FREQUENT        EQU     10
  144. PRI_SINGLE        EQU      5
  145. PRI_SINGLEGROUPED    EQU      3
  146. PRI_GROUPED        EQU      1
  147. PRI_GROUPEDSLOW        EQU     -5
  148. PRI_RARE        EQU    -10
  149. PRI_HOOKNAME        EQU    -100
  150.  
  151.  
  152. *************************************************************************
  153. *                                    *
  154. * Class bits (v2.0)                            *
  155. *                                    *
  156. *************************************************************************
  157.  
  158.     BITDEF    DMCLASS,UNKNOWN,0
  159.     BITDEF    DMCLASS,GRAPHICS,1
  160.     BITDEF    DMCLASS,ANIMATION,2
  161.     BITDEF    DMCLASS,MUSIC,3
  162.     BITDEF    DMCLASS,SAMPLE,4
  163.     BITDEF    DMCLASS,PACKED,5
  164.     BITDEF    DMCLASS,SYSTEM,6
  165.     BITDEF    DMCLASS,MISC,7
  166.     BITDEF    DMCLASS,LINK,8
  167.     BITDEF    DMCLASS,ASCII,9
  168.  
  169. *************************************************************************
  170. *                                    *
  171. * RecoList structures                            *
  172. *                                    *
  173. * WARNING!                                *
  174. * The RecoList structure has *changed*. It must ONLY be used now with    *
  175. * dmQueryRecoListNew() and dmQueryRecoNamesNew().            *
  176. * DO NOT USE the old corresponding functions!                *
  177. * The SIZE of RecoList structure is not defined !            *
  178. *                                    *
  179. *************************************************************************
  180.  
  181.  STRUCTURE RecoList,0        ;access ONLY rl_NumRecos & rl_RecoList array
  182.     ULONG    rl_OwnSize
  183.     UWORD    rl_NumRecos    ;number of recognizers
  184.     APTR    rl_RecoList    ;array of .L=addresses of names/recos
  185.  
  186.  STRUCTURE RecoListOld,0    ;old recolist (for internal compatibility. NEVER USE IT ANYMORE)
  187.     UWORD    orl_NumRecos    ;number of recognizers
  188.     STRUCT    orl_RecoList,128*4    ;array of .L=addresses of names/recos
  189.     ULONG    orl_Null
  190.     LABEL    orl_SIZEOF
  191.  
  192. *************************************************************************
  193. *                                    *
  194. * DM_Handle structure                            *
  195. *                                    *
  196. * It is <<PRIVATE>> and WILL change in the future!            *
  197. * You can only access the non-private fields.                *
  198. *                                    *
  199. *************************************************************************
  200.  
  201.  STRUCTURE DM_Handle,0
  202.     APTR    dmh_String
  203.     ULONG    dmh_Size    ;PRIVATE
  204.     ULONG    dmh_OwnSize    ;PRIVATE
  205.     APTR    dmh_SubType    ;(v2.0) additional SubType string, if available.
  206.     ULONG    dmh_SubTypeSize    ;PRIVATE
  207.     LABEL    dmh_SIZEOF
  208.  
  209.     ENDC ; LIBRARIES_DATAMASTER_I
  210.